// file_operation.c
#include"list.h"
 
void file_operation(char** argv)
{
  DIR* fd; //定义文件夹类型
  struct dirent* fp;//fp文件夹返回值
 
  struct stat buf;
  int ret;//获取文件属性
 
  char temp[100]; //中间变量存放文件路径
 
  if((fd = opendir(argv[1])) == NULL)//打开文件夹
  {
    perror("open file fail!");
    exit(0);
  }
  while((fp = readdir(fd)) != NULL)//循环读取文件夹中的文件信息
  {
    strcpy(temp, argv[1]); //将路径付给中间变量temp
    strcat(temp, fp -> d_name); //把文件名字添加到路径后面形成完整的路径
    if((ret = stat(temp, &buf)) == -1) //获取文件基本属性
    {
      perror("stat");
      exit(0);
    }
 
    file_mode(&buf);//文件属性（目录，链接……，可读，可写，可执行）
    printf("  %d", buf.st_nlink); //打印链接数
    file_gid_uid(buf.st_uid, buf.st_gid); //调用函数打印出文件拥有者和文件所有者组
    printf("\t%ld", buf.st_size); //打印文件大小
    //Time();//获取时间
    printf("\t%.12s ", 4 + ctime(&buf.st_mtime));
    printf("   %s\n", fp -> d_name); //打印文件名
  }
 
  closedir(fd);
}

